﻿//using PasteLoggerBoard.reportmodels;
//using System;
//using System.Linq;
//using System.Threading.Tasks;
//using Volo.Abp;
//using Volo.Abp.Domain.Repositories;
//using Volo.Abp.Uow;
//using Volo.Abp.Application.Dtos;
//using Microsoft.EntityFrameworkCore;
//using Microsoft.AspNetCore.Mvc;
//using System.Linq.Dynamic.Core;
//using System.Collections.Generic;
//namespace PasteLoggerBoard.reportmodels
//{
//    /// <summary>
//    /// 日志日报表
//    ///</summary>
//    [TypeFilter(typeof(RoleAttribute), Arguments = new object[] { "root", "root" })]
//    public class DayReportAppService : PasteLoggerBoardAppService
//    {

//        private readonly IPasteLoggerBoardDbContext _dbContext;
//        public DayReportAppService(IPasteLoggerBoardDbContext dbContext)
//        {
//           _dbContext=dbContext;
//        }
//        /// <summary>
//        /// 按页获取日志日报表
//        ///</summary>
//        /// <param name="page">页码</param>
//        /// <param name="size">页大小</param>
//        /// <returns></returns>
//        [HttpGet]
//        public async Task<PagedResultDto<DayReportListDto>> GetListAsync(int page=1,int size=20)
//        {

//            var query =_dbContext.DayReport.Where(t => 1==1)
//            .OrderByDescending(xy => xy.Id);

//            var pagedResultDto = new PagedResultDto<DayReportListDto>();
//            pagedResultDto.TotalCount = await query.CountAsync();
//            var userList = await query.Page(page,size).ToListAsync();
//            var temList = ObjectMapper.Map< List<DayReport>,List<DayReportListDto>>(userList);
//            pagedResultDto.Items = temList;
//            return pagedResultDto;
//        }

//        /// <summary>
//        /// 根据ID获取单项日志日报表
//        ///</summary>
//        /// <param name="id"></param>
//        /// <returns></returns>
//        [HttpGet]
//        public DayReportDto GetByIdAsync(int id)
//        {
//            var query = _dbContext.DayReport.Where(t => t.Id == id)
//            .AsNoTracking().FirstOrDefault();
//                if(query ==null || query == default)
//            {
//                throw new PasteLoggerBoardException("没有找到这样的信息",404);
//            }
//            var temList = ObjectMapper.Map<DayReport, DayReportDto>(query);
//            return temList;
//        }

//        /// <summary>
//        /// 根据ID获取待更新单项信息日志日报表
//        ///</summary>
//        /// <param name="id"></param>
//        /// <returns></returns>
//        [HttpGet]
//        public DayReportUpdateDto GetInfoForUpdateAsync(int id)
//        {
//            var query = _dbContext.DayReport.Where(t => t.Id == id)
//            .AsNoTracking().FirstOrDefault();
//                    if(query ==null || query == default)
//            {
//                throw new PasteLoggerBoardException("没有找到这样的信息",404);
//            }
//            var temList = ObjectMapper.Map<DayReport, DayReportUpdateDto>(query);
//            return temList;
//        }


//        /// <summary>
//        /// 添加一个日志日报表
//        ///</summary>
//        /// <param name="input"></param>
//        /// <returns></returns>
//        [HttpPost]
//        public async Task<DayReportDto> CreateItemAsync(DayReportAddDto input)
//        {

//            var newu = ObjectMapper.Map<DayReportAddDto, DayReport>(input);
//            //添加自定义
//            _dbContext.Add(newu);
//            await _dbContext.SaveChangesAsync();
//            //var updated = await _repository.InsertAsync(newu,true);
//            var backinfo = ObjectMapper.Map<DayReport, DayReportDto>(newu);
//            return backinfo;
//        }
//        /// <summary>
//        /// 更新一个日志日报表
//        ///</summary>
//        /// <param name="input"></param>
//        /// <returns></returns>
//        [HttpPost]
//        public async Task<DayReportDto> UpdateItemAsync(DayReportUpdateDto input)
//        {
//            var info =await _dbContext.DayReport.Where(x => x.Id == input.Id)
//.FirstOrDefaultAsync();
//            if (info == null || info == default) {
//                throw new UserFriendlyException("需要查询的信息不存在","404");
//            }
//            ObjectMapper.Map<DayReportUpdateDto, DayReport>(input,info);
//            //var updated = await _repository.UpdateAsync(newu);
//            await _dbContext.SaveChangesAsync();
//            var backinfo = ObjectMapper.Map<DayReport, DayReportDto>(info);
//            return backinfo;
//        }
//    }
//}
